/***********************************************************************
 * Module:  MagacinskaKartica.java
 * Author:  Igor Spremo, Milan Stojkov
 * Purpose: Defines the Class MagacinskaKartica
 ***********************************************************************/

package model.entity;

import java.io.Serializable;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;

/**
 * 
 * @author Igor Spremo, Milan Stojkov
 *
 */

@SuppressWarnings("serial")
public class MagacinskaKartica implements Serializable {
	
	protected Integer id;
	protected double prosecnaCena;
	protected int kolicinaPocetnogStanja;
	protected int kolicinaUlaza;
	protected int kolicinaIzlaza;
	protected double vrednostPocetnogStanja;
	protected double vrednostUlaza;
	protected double vrednostIzlaza;
	protected int verzija;

	protected Collection<VrstaPloce> vrstePloca;
	protected Collection<AnalitikaMagacinskeKartice> analitikeMagacinskihKartica;

	public Collection<VrstaPloce> getVrstePloca() {
		if (vrstePloca == null)
			vrstePloca = new HashSet<VrstaPloce>();
		
		return vrstePloca;
	}

	public Iterator<VrstaPloce> getIteratorVRSTA_PLOCE() {
		if (vrstePloca == null)
			vrstePloca = new HashSet<VrstaPloce>();
		
		return vrstePloca.iterator();
	}

	public void setVrstePloca(Collection<VrstaPloce> newVrstePloca) {
		removeAllVrstePloca();
		for (Iterator<VrstaPloce> iter = newVrstePloca.iterator(); iter.hasNext();)
			addVrstaPloce((VrstaPloce) iter.next());
	}

	public void addVrstaPloce(VrstaPloce newVrstaPloce) {
		if (newVrstaPloce == null)
			return;
		if (this.vrstePloca == null)
			this.vrstePloca = new HashSet<VrstaPloce>();
		if (!this.vrstePloca.contains(newVrstaPloce))
			this.vrstePloca.add(newVrstaPloce);
	}

	public void removeVrstaPloce(VrstaPloce oldVrstaPloce) {
		if (oldVrstaPloce == null)
			return;
		if (this.vrstePloca != null)
			if (this.vrstePloca.contains(oldVrstaPloce))
				this.vrstePloca.remove(oldVrstaPloce);
	}

	public void removeAllVrstePloca() {
		if (vrstePloca != null)
			vrstePloca.clear();
	}

	public Collection<AnalitikaMagacinskeKartice> getAnalitikeMagacinskihKartica() {
		if (analitikeMagacinskihKartica == null)
			analitikeMagacinskihKartica = new HashSet<AnalitikaMagacinskeKartice>();
		
		return analitikeMagacinskihKartica;
	}

	public Iterator<AnalitikaMagacinskeKartice> getIteratorAnalitikeMagacinskihKartica() {
		if (analitikeMagacinskihKartica == null)
			analitikeMagacinskihKartica = new HashSet<AnalitikaMagacinskeKartice>();
		
		return analitikeMagacinskihKartica.iterator();
	}

	public void setAnalitikeMagacinskihKartica(
			Collection<AnalitikaMagacinskeKartice> newAnalitikeMagacinskihKartica) {
		removeAllAnalitikeMagacinskihKartica();
		for (Iterator<AnalitikaMagacinskeKartice> iter = newAnalitikeMagacinskihKartica
				.iterator(); iter.hasNext();)
			addAnalitikaMagacinskeKartice((AnalitikaMagacinskeKartice) iter.next());
	}

	public void addAnalitikaMagacinskeKartice(
			AnalitikaMagacinskeKartice newAnalitikaMagacinskeKartice) {
		if (newAnalitikaMagacinskeKartice == null)
			return;
		if (this.analitikeMagacinskihKartica == null)
			this.analitikeMagacinskihKartica = new HashSet<AnalitikaMagacinskeKartice>();
		if (!this.analitikeMagacinskihKartica
				.contains(newAnalitikaMagacinskeKartice))
			this.analitikeMagacinskihKartica
					.add(newAnalitikaMagacinskeKartice);
	}

	public void removeAnalitikeMagacinskihKartica(
			AnalitikaMagacinskeKartice oldAnalitikeMagacinskihKartica) {
		if (oldAnalitikeMagacinskihKartica == null)
			return;
		if (this.analitikeMagacinskihKartica != null)
			if (this.analitikeMagacinskihKartica
					.contains(oldAnalitikeMagacinskihKartica))
				this.analitikeMagacinskihKartica
						.remove(oldAnalitikeMagacinskihKartica);
	}

	public void removeAllAnalitikeMagacinskihKartica() {
		if (analitikeMagacinskihKartica != null)
			analitikeMagacinskihKartica.clear();
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public double getProsecnaCena() {
		return prosecnaCena;
	}

	public void setProsecnaCena(double prosecnaCena) {
		this.prosecnaCena = prosecnaCena;
	}

	public int getKolicinaPocetnogStanja() {
		return kolicinaPocetnogStanja;
	}

	public void setKolicinaPocetnogStanja(int kolicinaPocetnogStanja) {
		this.kolicinaPocetnogStanja = kolicinaPocetnogStanja;
	}

	public int getKolicinaUlaza() {
		return kolicinaUlaza;
	}

	public void setKolicinaUlaza(int kolicinaUlaza) {
		this.kolicinaUlaza = kolicinaUlaza;
	}

	public int getKolicinaIzlaza() {
		return kolicinaIzlaza;
	}

	public void setKolicinaIzlaza(int kolicinaIzlaza) {
		this.kolicinaIzlaza = kolicinaIzlaza;
	}

	public double getVrednostPocetnogStanja() {
		return vrednostPocetnogStanja;
	}

	public void setVrednostPocetnogStanja(double vrednostPocetnogStanja) {
		this.vrednostPocetnogStanja = vrednostPocetnogStanja;
	}

	public double getVrednostUlaza() {
		return vrednostUlaza;
	}

	public void setVrednostUlaza(double vrednostUlaza) {
		this.vrednostUlaza = vrednostUlaza;
	}

	public double getVrednostIzlaza() {
		return vrednostIzlaza;
	}

	public void setVrednostIzlaza(double vrednostIzlaza) {
		this.vrednostIzlaza = vrednostIzlaza;
	}

	public int getVerzija() {
		return verzija;
	}

	public void setVerzija(int verzija) {
		this.verzija = verzija;
	}

}